package com.example.gradu.graduationproject.controller;

import com.example.gradu.graduationproject.domain.Code;
import com.example.gradu.graduationproject.service.CodeService;
import com.example.gradu.graduationproject.util.R;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * (Code)表控制层
 * 与验证码有关的所有接口
 * @author makejava
 * @since 2025-02-13 00:23:20
 */
@RestController
@RequestMapping("code")
public class CodeController {
    /**
     * 服务对象
     */
    @Resource
    private CodeService codeService;

    /**
     * 全查询
     *
     * @param code 筛选条件
     * @return 查询结果
     */
    @GetMapping
    public R queryAll(Code code) {
        return this.codeService.queryAll(code);
    }

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("{id}")
    public R queryById(@PathVariable("id") Integer id) {
        return this.codeService.queryById(id);
    }

    /**
     * 新增数据
     *
     * @param code 实体
     * @return 新增结果
     */
    @PostMapping
    public R add(@RequestBody Code code) {
        return this.codeService.insert(code);
    }

    /**
     * 编辑数据
     *
     * @param code 实体
     * @return 编辑结果
     */
    @PutMapping
    public R edit(@RequestBody Code code) {
        return this.codeService.update(code);
    }

    /**
     * 删除数据
     *
     * @param id 主键
     * @return 删除是否成功
     */
    @DeleteMapping
    public R deleteById(Integer id) {
        return this.codeService.deleteById(id);
    }

}


